package com.engine4cloud.tdf.supervision.convert;

import com.engine4cloud.tdf.common.core.constant.enums.ComplexAuditActionStatusEnum;
import com.engine4cloud.tdf.common.core.util.CodeUtils;
import com.engine4cloud.tdf.supervision.dto.create.SpRevokeParoleCreateDTO;
import com.engine4cloud.tdf.supervision.dto.result.SpRevokeParoleResultDTO;
import com.engine4cloud.tdf.supervision.dto.update.SpRevokeParoleUpdateDTO;
import com.engine4cloud.tdf.supervision.entity.SpRevokeParoleEntity;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

@Mapper
public interface SpRevokeParoleConvert {
    SpRevokeParoleConvert INSTANCE = Mappers.getMapper(SpRevokeParoleConvert.class);

    SpRevokeParoleResultDTO convert(SpRevokeParoleEntity s);

    SpRevokeParoleEntity create(SpRevokeParoleCreateDTO s);

    SpRevokeParoleEntity update(SpRevokeParoleUpdateDTO s);

    default SpRevokeParoleEntity create(SpRevokeParoleCreateDTO s, Long tenantId, ComplexAuditActionStatusEnum action) {
        SpRevokeParoleEntity entity = create(s);
        entity.setTenantId(tenantId);
        entity.setLcbh(CodeUtils.entrustCode());
        entity.setPreAction(action);
        return entity;
    }
}
